در این مقاله قصد داریم نشان دهیم که چگونه می توان تصویر Captcha را در برنامه های ASP.netخود قرار دهیم captcha.برای تشخیص ربات ها از انسان ها ایجاد شده اند که با استفاده از آن ربات ها نتوانند به سایت وارد شوند و تداخلی در آن ایجاد کنند. در این مقاله قصد داریم نشان دهیم که چگونه می توان تصویر Captcha را در برنامه های ASP.net خود قرار دهیم captcha.برای تشخیص ربات ها از انسان ها ایجاد شده اند که با استفاده از آن ربات ها نتوانند به سایت وارد شوند و تداخلی در آن ایجاد کنند. در اینجا برای ثبت نام کاربر Captcha قرار خواهیم داد. پس ابتدا یک برنامه ASP.net ایجاد میکنیم. برنامه را به صورت زیر ایجاد میکنیم.
به این صورت یک برنامه Web form ایجاد خواهد شد. یک Web form گزینه Web Form With Master Page را انتخاب میکنیم. جدید با نام Register.aspx اضافه میکنیم. برای اضافه کردن آن Masterخود page را انتخاب و OK کنید.
برای ایجاد صفحه دیگری با نام captcha ایجاد کرده و از ان در صفحه Register استفاده میکنیم. Captcha کدهای زیر را در Captcha.aspx.cs وارد میکنیم. using System; using System.Collections.Generic; using System.Drawing; using System.Drawing.Drawing2D; using System.Drawing.Imaging; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace CaptchaDemo public partial class Captcha: System.Web.UI.Page protected void Page_Load(object sender, EventArgs e) Bitmap objbitmap = new Bitmap(130, 80); Graphics objgraphics = Graphics.FromImage(objBitmap); objgraphics.clear(color.white); Random objrandom = new Random(); objgraphics.drawline(pens.black, objrandom.next(0, 50), objrandom.next(10, 30), objrandom.next(0, 200), objrandom.next(0, 50)); objgraphics.drawrectangle(pens.blue, objrandom.next(0, 20), objrandom.next(0, 20), objrandom.next(50, 80), objrandom.next(0, 20)); objgraphics.drawline(pens.blue, objrandom.next(0, 20), objrandom.next(10, 50), objrandom.next(100, 200), objrandom.next(0, 80)); Brush objbrush = default (Brush);
//create background style HatchStyle[] ahatchstyles = new HatchStyle[] HatchStyle.BackwardDiagonal, HatchStyle.Cross, HatchStyle.DashedDownwardDiagonal, HatchStyle.DashedHorizontal, HatchStyle.DashedUpwardDiagonal, HatchStyle.DashedVertical, HatchStyle.DiagonalBrick, HatchStyle.DiagonalCross, HatchStyle.Divot, HatchStyle.DottedDiamond, HatchStyle.DottedGrid, HatchStyle.ForwardDiagonal, HatchStyle.Horizontal, HatchStyle.HorizontalBrick, HatchStyle.LargeCheckerBoard, HatchStyle.LargeConfetti, HatchStyle.LargeGrid, HatchStyle.LightDownwardDiagonal, HatchStyle.LightHorizontal ; //create rectangular area RectangleF orectanglef = new RectangleF(0, 0, 300, 300); objbrush = new HatchBrush(aHatchStyles[objRandom.Next(aHatchStyles.Length - 3)], Color.FromArgb((objRandom.Next(100, 255)), (objrandom.next(100, 255)), (objrandom.next(100, 255))), Color.White); objgraphics.fillrectangle(objbrush, orectanglef); //Generate the image for captcha string captchatext = string.format("0:x", objrandom.next(1000000, 9999999)); //add the captcha value in session Session["CaptchaVerify"] = captchatext.tolower(); Font objfont = new Font("Courier New", 15, FontStyle.Bold); //Draw the image for captcha 20); objgraphics.drawstring(captchatext, objfont, Brushes.Black, 20, objbitmap.save(response.outputstream, ImageFormat.Gif);
کدها در Register.aspx به صورت زیر می باشد: <%@ Page Title="" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="Register.aspx.cs" Inherits="CaptchaDemo.Register" %> <asp:content ID="Content1" ContentPlaceHolderID="MainContent" runat="server"> <table> <br /> <br /> <br /> <td colspan="2"> <h4> نام کاربر < h4 />ثبت نام کامل< td > <asp:textbox runat="server" ID="txtFullName"></asp:TextBox> ایمیل< td > <asp:textbox runat="server" ID="txtEmail"></asp:TextBox>
نام کاربری< td > <asp:textbox runat="server" ID="txtUserName"></asp:TextBox> کلمه عبور< td > <asp:textbox runat="server" ID="txtPassword" TextMode="Password"></asp:TextBox> کد تایید< td > <asp:image ID="Image2" runat="server" Height="55px" ImageUrl="~/Captcha.aspx" Width="186px" /> <br /> <asp:label runat="server" ID="lblCaptchaMessage"></asp:Label>
کد تایید را وارد کنید< td > <asp:textbox runat="server" ID="txtVerificationCode"></asp:TextBox> <td colspan="2"> OnClick="btnSubmit_Click" /> </table> </asp:content> "ثبت"= Text <asp:button runat="server" ID="btnSubmit" همانطور که مشاهده میکنید صفحه captcha را به این صفحه اضافه کردیم.
ASP.net captcha عنوان مقاله : نحوه ایجاد تصویر در تهیه وتنظیم کننده : مرجع تخصصی برنامه نویسان در صفحه register.aspx.cs مقادیر وارد شده چک خواهند شد اگر مقدار درون textbox و یکی باشند آنگاه captcha درست Session بوده و در غیر اینصورت اشتباه است. using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace CaptchaDemo public partial class Register: System.Web.UI.Page protected void Page_Load(object sender, EventArgs e) protected void btnsubmit_click(object sender, EventArgs e) if (txtverificationcode.text.tolower() == Session["CaptchaVerify"].ToString()) else Response.Redirect("Default.aspx"); lblcaptchamessage.text = "Please enter correct captcha!"; lblcaptchamessage.forecolor = System.Drawing.Color.Red;
صفحه Default.aspx به صورت زیر خواهد بود: <%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="CaptchaDemo._Default" %> <asp:content ID="BodyContent" ContentPlaceHolderID="MainContent" runat="server"> <br /> <asp:label runat="server" ID="lblCaptchaMessage" ForeColor="Green"> </asp:label> </asp:content> و صفحه Default.aspx.cs به صورت زیر: using System; using System.Web.UI; namespace CaptchaDemo public partial class _Default: Page protected void Page_Load(object sender, EventArgs e) lblcaptchamessage.text = "You have entered correct captch code"; lblcaptchamessage.forecolor = System.Drawing.Color.Green; اکنون پروژه را اجرا کنید.
نتیجه به صورت زیر ظاهر خواهد شد: